package cn.b.sky.mes.em.dao;

import java.util.List;

import cn.b.sky.mes.em.model.MaintainTaskCause;
import org.apache.ibatis.annotations.Param;

import cn.b.sky.mes.em.model.MaintainTask;
import cn.b.sky.mes.em.model.MaintainTaskPart;
import cn.b.sky.mes.em.model.condition.MaintainTaskCondition;

/**
 * 
 * <strong>Title : MaintainTaskDao.java<br></strong>
 * <strong>Package : cn.b.sky.mes.em.dao<br></strong>
 * <strong>Description : </strong>维护任务数据接口<br> 
 * <strong>Create on : 2015-11-9 下午03:45:57<br></strong>
 * <p>
 * @author zhaoxin01<br>
 * @version <strong>v1.0.0</strong><br>
 * <br>
 * <strong>修改历史:</strong><br>
 * 修改人 | 修改日期 | 修改描述<br>
 * -------------------------------------------<br>
 * <br>
 * <br>
 */
public interface MaintainTaskDao {
  /**
   * 
   * <strong>Title : selectMaintainTask<br></strong>
   * <strong>Description : </strong>根据工厂、设备、策略及计划日期查询任务<br> 
   * <strong>Create on : 2015-11-10 下午01:33:10<br></strong>
   * <p>
   * @param maintainTask
   * @return
   * MaintainTask
   * @throws 
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  MaintainTask selectMaintainTask(MaintainTask maintainTask);

  /**
   * 
   * <strong>Title : insertMaintainTask<br></strong>
   * <strong>Description : </strong>新增维护任务<br> 
   * <strong>Create on : 2015-11-10 下午01:34:36<br></strong>
   * <p>
   * @param maintainTask
   * void
   * @throws 
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void insertMaintainTask(MaintainTask maintainTask);

  /**
   * 
   * <strong>Title : deleteMaintainTaskByStatus<br></strong>
   * <strong>Description : </strong>根据工厂、设备、策略、状态删除维护任务<br> 
   * <strong>Create on : 2015-11-10 下午02:02:55<br></strong>
   * <p>
   * @param siteCode
   * @param equipmentCode
   * @param strategyCode
   * @param statusECode
   * void
   * @throws 
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void deleteMaintainTaskByStatus(@Param("siteCode") String siteCode, @Param("equipmentCode") String equipmentCode,
      @Param("strategyCode") String strategyCode, @Param("statusECode") String statusECode);

  /**
   * 
   * <strong>Title : selectMaintainTaskByCondition<br></strong>
   * <strong>Description : </strong>分页查询维护任务<br> 
   * <strong>Create on : 2015-11-11 下午02:46:49<br></strong>
   * <p>
   * @param maintainTaskCondition
   * @return
   * List<MaintainTask>
   * @throws 
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  List<MaintainTask> selectMaintainTaskByCondition(MaintainTaskCondition maintainTaskCondition);

  /**
   *  
   * <strong>Title : selectMaintainTaskCount<br></strong>
   * <strong>Description : </strong>查询维护任务条数<br> 
   * <strong>Create on : 2015-11-11 下午02:49:05<br></strong>
   * <p>
   * @param maintainTaskCondition
   * @return
   * int
   * @throws 
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  int selectMaintainTaskCount(MaintainTaskCondition maintainTaskCondition);

  /**
   * 
   * <strong>Title : updateMaintainTaskStatus<br></strong>
   * <strong>Description : </strong>更新维护任务状态<br> 
   * <strong>Create on : 2015-11-11 下午02:51:06<br></strong>
   * <p>
   * @param maintainTask
   * void
   * @throws 
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void updateMaintainTaskStatus(MaintainTask maintainTask);

  /**
   * 
   * <strong>Title : selectMaintainTaskByCode<br></strong>
   * <strong>Description : </strong>根据编号查询维护任务<br> 
   * <strong>Create on : 2015-11-11 下午02:52:12<br></strong>
   * <p>
   * @param siteCode
   * @param taskCode
   * @return
   * MaintainTask
   * @throws 
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  MaintainTask selectMaintainTaskByCode(@Param("siteCode") String siteCode, @Param("taskCode") String taskCode);

  /**
   * 
   * <strong>Title : updateMaintainTask<br></strong>
   * <strong>Description : </strong>更新维护任务<br> 
   * <strong>Create on : 2015-11-11 下午02:53:00<br></strong>
   * <p>
   * @param maintainTask
   * void
   * @throws 
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void updateMaintainTask(MaintainTask maintainTask);

  /**
   * 
   * <strong>Title : selectMaintainTaskCauseList<br></strong>
   * <strong>Description : </strong>查询故障原因<br> 
   * <strong>Create on : 2015-11-12 上午10:44:30<br></strong>
   * <p>
   * @param siteCode
   * @param taskCode
   * @return
   * List<MaintainTaskCause>
   * @throws 
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  List<MaintainTaskCause> selectMaintainTaskCauseList(@Param("siteCode") String siteCode,
                                                      @Param("taskCode") String taskCode);

  /**
   * 
   * <strong>Title : selectMaintainTaskPartList<br></strong>
   * <strong>Description : </strong>查询备件<br> 
   * <strong>Create on : 2015-11-12 上午10:44:43<br></strong>
   * <p>
   * @param siteCode
   * @param taskCode
   * @return
   * List<MaintainTaskPart>
   * @throws 
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  List<MaintainTaskPart> selectMaintainTaskPartList(@Param("siteCode") String siteCode,
      @Param("taskCode") String taskCode);

  /**
   * 
   * <strong>Title : insertMaintainTaskCause<br></strong>
   * <strong>Description : </strong>新增维护任务故障原因<br> 
   * <strong>Create on : 2015-11-12 上午10:45:13<br></strong>
   * <p>
   * @param maintainTaskCause
   * void
   * @throws 
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void insertMaintainTaskCause(MaintainTaskCause maintainTaskCause);

  /**
   * 
   * <strong>Title : insertMaintainTaskPart<br></strong>
   * <strong>Description : </strong>新增维护任务备件<br> 
   * <strong>Create on : 2015-11-12 上午10:45:48<br></strong>
   * <p>
   * @param maintainTaskPart
   * void
   * @throws 
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void insertMaintainTaskPart(MaintainTaskPart maintainTaskPart);

  /**
   * 
   * <strong>Title : deleteMaintainTaskCause<br></strong>
   * <strong>Description : </strong>删除维护任务故障原因<br> 
   * <strong>Create on : 2015-11-12 上午10:51:09<br></strong>
   * <p>
   * @param siteCode
   * @param taskCode
   * void
   * @throws 
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void deleteMaintainTaskCause(@Param("siteCode") String siteCode, @Param("taskCode") String taskCode);

  /**
   * 
   * <strong>Title : deleteMaintainTaskPart<br></strong>
   * <strong>Description : </strong>删除维护任务备件<br> 
   * <strong>Create on : 2015-11-12 上午10:51:33<br></strong>
   * <p>
   * @param siteCode
   * @param taskCode
   * void
   * @throws 
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void deleteMaintainTaskPart(@Param("siteCode") String siteCode, @Param("taskCode") String taskCode);

  /**
   * 
   * <strong>Title : selectMaintainTaskByDate<br></strong>
   * <strong>Description : </strong>根据日期、状态查询维护任务<br> 
   * <strong>Create on : 2015-11-17 上午10:48:11<br></strong>
   * <p>
   * @param maintainTask
   * @return
   * List<MaintainTask>
   * @throws 
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  List<MaintainTask> selectMaintainTaskByDate(MaintainTask maintainTask);

}
